문제

정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 2 ≤ num_list의 길이 ≤ 10
  • 1 ≤ num_list의 원소 ≤ 9

입출력 예

num_list result
[3, 4, 5, 2, 1] 1
[5, 7, 8, 3] 0

입출력 예 설명

입출력 예 #1

  • 모든 원소의 곱은 120, 합의 제곱은 225이므로 1을 return합니다.

입출력 예 #2

  • 모든 원소의 곱은 840, 합의 제곱은 529이므로 0을 return합니다.

코드

function solution(num_list) {
  // 0을 곱하면 0이 나오기 때문에 1로 선언함
  var answer = 1;
  var answer2 = 0;
  for (let i = 0; i < num_list.length; i++) {
    answer *= num_list[i];
    answer2 += num_list[i];
  }
  return answer > answer2 ** 2 ? 0 : 1;
}

코드 해설

  • num_list라는 배열을 인자로 받는 함수 solution을 선언한다.
  • 두 변수 answer를 1로 초기화하고 , answer2를 0으로 초기화한다.
  • 배열을 순회하기 위해서는 for문을 이용한다.
  • 각 반복에서 answer에 현재 배열 요소를 곱하고, answer2에 현재 배열 요소를 더한다.
  • 삼항 연산자를 이용해 answer값이 answer2의 제곱한 값보다 크면 0 작으면 1를 반환한다.